package com.study.hot.di.kodein

import android.app.Application
import com.blankj.utilcode.util.LogUtils
import com.blankj.utilcode.util.Utils
import org.kodein.di.Kodein
import org.kodein.di.KodeinAware
import org.kodein.di.android.androidModule

/**
 * <pre>
 *     author : slx
 *     time   : 2020/11/27
 *     desc   : 很多资源需要保持单例，Retrofit等，所以需要在Application中配置
 * </pre>
 */
// 实现KodeinAware接口 都会持有一个 kodein容器
class KodeinApp : Application(), KodeinAware {

    override fun onCreate() {
        super.onCreate()
    }

    // 实例化Kodein容器，并通过DSL绑定module
    override val kodein: Kodein = Kodein.lazy {
        /*binding*/
        // 导入预设的 android 组件
        import(androidModule(this@KodeinApp))
        // 绑定、导入自定义依赖
    }
}